import { PAGE_SIZE } from 'globalConstants';
import request from '../../../utils/request';

export function fetchList(body) {
  const pageSize = PAGE_SIZE;
  body = { ...body, pageSize };
  return request('/admin-api/a/users', {
    method: 'GET',
    body,
  });
}

/**
 * 查询用户详情
 * 注意：已登陆用户用fetchProfile接口
 * @param {number} id 用户ID
 */
export function fetch(id) {
  return request(`/admin-api/a/users/${id}`, {
    method: 'GET',
  });
}

/**
 * 查询当前已登陆用户详情
 */
export function fetchProfile() {
  return request(`/admin-api/a/users/profile`, {
    method: 'GET',
  });
}

/**
 * 添加后台用户
 * @param {object} body 创建用户表单
 */
export function create(body) {
  return request('/admin-api/a/users', {
    method: 'POST',
    body,
  });
}

/**
 * 更新用户profile
 * 注意：已登陆用户用updateProfile接口
 */
export function update(id, body) {
  return request(`/admin-api/a/users/${id}`, {
    method: 'PUT',
    body,
  });
}

/**
 * 更新登陆用户profile
 */
export function updateProfile(body) {
  return request('/admin-api/a/users/profile', {
    method: 'PUT',
    body,
  });
}

/**
 * 更新用户的状态
 * 禁用|离职
 */
export function updateStatus(id, status) {
  return request(`/admin-api/a/users/${id}/status`, {
    method: 'PUT',
    body: {
      status,
    },
  });
}

/**
 * 查询角色列表
 */
export function fetchRoles() {
  return request('/admin-api/a/roles', {
    method: 'GET',
  });
}

/**
 * 修改用户密码
 * @param {number} id 用户ID
 * @param {string} password 新密码
 */
export function updatePassword(id, password) {
  return request(`/admin-api/a/users/${id}/password`, {
    method: 'PUT',
    body: {
      password,
    },
  });
}

/**
 * 修改已登陆用户自己的密码
 * @param {string} password 新密码
 */
export function updateSelfPassword(password) {
  return request(`/admin-api/a/users/password`, {
    method: 'PUT',
    body: {
      password,
    },
  });
}
